/* **********************************************************************************
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* **********************************************************************************/

using System;
using System.Collections.Generic;
using System.Text;

namespace OfficeOpenXMLInterop
{
    #region Simple Types

    [Serializable]
    public enum ST_LineEndType
    {
        none,
        triangle,
        stealth,
        diamond,
        oval,
        arrow,
    }

    [Serializable]
    public enum ST_PenAlignment
    {
        ctr,
        @in,
    }

    [Serializable]
    public enum ST_CompoundLine
    {
        sng,
        dbl,
        thickThin,
        thinThick,
        tri,
    }

    [Serializable]
    public enum ST_LineEndWidth
    {
        sm,
        med,
        lg,
    }

    [Serializable]
    public enum ST_LineEndLength
    {
        sm,
        med,
        lg,
    }

    [Serializable]
    public enum ST_LineCap
    {
        rnd,
        sq,
        flat,
    }

    [Serializable]
    public enum ST_PresetLineDashVal
    {
        solid,
        dot,
        dash,
        lgDash,
        dashDot,
        lgDashDot,
        lgDashDotDot,
        sysDash,
        sysDot,
        sysDashDot,
        sysDashDotDot,
    }

    #endregion

    #region Complex Types

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_PresetLineDashProperties
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_PresetLineDashVal val;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool valSpecified;
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_DashStop
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int d;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int sp;
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_LineJoinRound
    {
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_LineJoinBevel
    {
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_LineJoinMiterProperties
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int lim;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool limSpecified;
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_LineEndProperties
    {
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_LineEndType type;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool typeSpecified;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_LineEndWidth w;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool wSpecified;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_LineEndLength len;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lenSpecified;
    }

    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_LineProperties
    {
        public CT_NoFillProperties noFill;
        public CT_SolidColorFillProperties solidFill;
        public CT_GradientFillProperties gradFill;
        public CT_PatternFillProperties pattFill;
        public CT_PresetLineDashProperties prstDash;

        [System.Xml.Serialization.XmlArrayItemAttribute("ds", IsNullable = false)]
        public CT_DashStop[] custDash;

        public CT_LineJoinRound round;

        public CT_LineJoinBevel bevel;

        public CT_LineJoinMiterProperties miter;

        public CT_LineEndProperties headEnd;

        public CT_LineEndProperties tailEnd;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int w;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool wSpecified;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_LineCap cap;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool capSpecified;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_CompoundLine cmpd;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool cmpdSpecified;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ST_PenAlignment algn;

        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool algnSpecified;
    }

    #endregion
}
